@echo off
chcp 65001
cls

:: 检查管理员权限
net session >nul 2>&1
if %errorlevel% neq 0 (
    echo ⚠️  需要管理员权限来卸载依赖包
    echo 🔄 正在尝试以管理员权限重新运行...
    
    :: 获取当前脚本的完整路径
    set "script_path=%~f0"
    
    :: 以管理员权限重新运行
    powershell -Command "Start-Process cmd -ArgumentList '/c \"%script_path%\"' -Verb RunAs"
    exit /b
)

echo ✅ 已获得管理员权限

:: 获取当前脚本所在目录
set "workspace=%~dp0"
set "Python=%workspace%..\python\python.exe"

:: 设置 PATH 以包含虚拟环境的 Scripts 目录
set "PATH=%workspace%..\python\py_scripts;%PATH%"

echo.
echo ========================================
echo         ComfyUI 依赖库卸载工具
echo ========================================
echo.

echo ⚠️  警告：此操作将卸载所有第三方依赖库！
echo.
echo 此操作将：
echo - 备份当前所有已安装的包列表
echo - 卸载所有第三方依赖库（保留 pip, setuptools, wheel）
echo - 清理 Python 环境
echo.
echo 建议在操作前确保已备份重要数据
echo.

set /p confirm="确认要卸载所有第三方依赖库吗？(y/N): "
if /i not "%confirm%"=="y" (
    echo 操作已取消
    pause
    exit /b 0
)

echo.
echo 🗑️  开始卸载所有第三方依赖库...
echo.

:: 创建备份文件名（使用日期时间）
for /f "tokens=1-3 delims=/ " %%a in ('date /t') do set "backup_date=%%c%%b%%a"
for /f "tokens=1-2 delims=: " %%a in ('time /t') do set "backup_time=%%a%%b"
set "backup_file=%workspace%requirements_backup_%backup_date%_%backup_time%.txt"

:: 备份当前包列表
echo 📁 备份当前包列表到: %backup_file%
%Python% -m pip freeze > "%backup_file%"

:: 获取所有第三方包（排除基础包）
echo 🔍 获取第三方包列表...
%Python% -m pip freeze | findstr /v /i "pip setuptools wheel" > "%workspace%temp_packages.txt"

:: 显示将要卸载的包
echo.
echo 📋 将要卸载的包：
type "%workspace%temp_packages.txt"
echo.

set /p confirm2="确认卸载以上包吗？(y/N): "
if /i not "%confirm2%"=="y" (
    echo 操作已取消
    del "%workspace%temp_packages.txt"
    pause
    exit /b 0
)

:: 卸载所有第三方包
echo.
echo 🗑️  正在卸载第三方包...
set "count=0"
for /f "delims=" %%i in (%workspace%temp_packages.txt) do (
    set /a count+=1
    echo [%count%] 卸载: %%i
    %Python% -m pip uninstall -y %%i >nul 2>&1
    if !errorlevel! equ 0 (
        echo     ✅ 成功
    ) else (
        echo     ❌ 失败
    )
)

:: 清理临时文件
del "%workspace%temp_packages.txt"

echo.
echo ✅ 卸载操作完成
echo 📁 备份文件已保存到: %backup_file%
echo.
echo 如需恢复，可以运行：
echo %Python% -m pip install -r "%backup_file%"
echo.

pause
exit /b 0 